This invention is in the field of control systems for electric machines. Embodiments described in this specification are more specifically directed to field-oriented control of electric motors.
Field-oriented control (“FOC”) has become commonplace in modern control systems for AC electric motors. According to this approach, stator windings of the AC motor are driven, for example by pulse-width-modulation, in such a way as to maximize the torque/ampere performance of the motor. Field-oriented control of AC motors is a complicated task because the rotation of the magnetic field in the stator with respect to the rotating magnetic field of the rotor can be asynchronous, such that characterization of the operation of the AC motor involves a set of differential equations with time varying coefficients.
Modern high-speed programmable microcontrollers have been widely adopted for carrying out the complex calculations required for accurate field-oriented control. Many AC motor control algorithms are based on the well-known “Park” transform, which transforms the applicable set of differential equations with angle-dependent coefficients into a set of differential equations that are independent of motor angle. In particular, the Park transform considers motor operation according to a rotating two-dimensional (d, q) coordinate system, where axis d is aligned with the field flux linkage component (i.e., the rotor flux) and orthogonal axis q is aligned with the torque component. By separating the field flux linkage and torque components, motor torque can be controlled without affecting the field flux. This decoupling enables the use of techniques such as dynamic torque control and speed control, either of which can employ proportional-and-integral (PI) control algorithms and the like for the actual controller instantiation.
FIG. 1a illustrates a conventional FOC controller architecture for controlling the operation of an AC motor. In this architecture, speed controller function 10 is a control function that receives a desired motor speed input signal ωd[n] along with a feedback rotor velocity estimate {circumflex over (ω)}[n] from speed/position estimator 18. Speed controller 10 typically applies a function, such as a proportional-integral control function, to a difference (i.e., error signal) between motor speed input signal ωd[n] and velocity estimate signal {circumflex over (ω)}[n] to generate the desired quadrature phase reference current signal Iqd for application to error generator 2q. Error generator 2q subtracts quadrature phase feedback current Iq from quadrature phase reference current signal Iqd, to produce error signal εq that is applied to proportional-integral (PI) controller 4q. Similarly, error generator 2d receives a desired direct phase reference current Idd and direct phase feedback current Id, and produces error signal al that is applied to proportional-integral (PI) controller 4d. PI controllers 4q, 4d each apply a conventional control function, for example a combination of proportional and integral functions, to error signals εq, εd, respectively, to produce corresponding respective direct phase control signal Vd and quadrature phase control signal Vq, both of which are applied to inverse Park transform function 5. Inverse Park transform function 5 transforms the d and q phase control signals Vd, Vq to spatially fixed α and β phase control signals Vα, Vβ, and applies those signals to space vector generator 7, which in turn produces three-phase data signals Ta, Tb, Tc that express duty cycles (i.e., pulse widths) for corresponding motor phases; these data signals are applied to PWM drivers 8 that generate the pulses applied to the stator windings of motor M via power driver 9 and inverter 11. PWM drivers 8 commonly include timers that control the start and stop times of each drive pulse, in response to data signals Ta, Tb, Tc.
The feedback side of the control loop in this architecture receives feedback signals from multiple sources, all such sources based on sensors at motor M and corresponding sense circuits 13. One source of feedback signals is a set of current sample streams Iabc produced by ADCs 14a based on output from sense circuits 13, and which represent currents induced in the stator windings by the rotor of motor M as it rotates. Another set of feedback signals are voltage sample streams Vabc corresponding to voltages sensed at each of the stator windings, which are digitized by ADCs 14b. In addition, ADC 14c in this architecture receives a signal from the voltage supply source, and produces voltage sample stream Vbus corresponding to the voltage level of the reference bus. As typical in the art, current sample streams Iabc from ADC 14a are applied to Clarke transform function 16a to produce spatially fixed α and β phase feedback signals Iαβ, transforming the three-phase time variant system of differential equations into a two coordinate time variant system. These transformed feedback signals Iαβ are input to Park transform function 17a, which in turn produces direct and quadrature phase feedback currents Id, Iq, respectively. Similarly, voltage sample streams Vabc from ADC 26b are input to Clarke transform function 16b to produce spatially fixed α and β phase feedback signals Vαβ that are in turn input to Park transform function 17b, which produces direct and quadrature phase feedback voltages Vd and Vq. These direct and quadrature phase feedback currents Id, Iq, and corresponding direct and quadrature phase feedback voltages Vd, Vq, are applied to speed/position estimator function 18, which produces rotor position estimate {circumflex over (θ)}[n] and rotor velocity estimate {circumflex over (ω)}[n] corresponding to the measurements acquired by ADCs 14a through 14c in sample period n (i.e., at time instant n·Ts, where Ts is the sample period of ADCs 14); this current rotor velocity estimate {circumflex over (ω)}[n] is applied to speed controller function 10 as noted above.
As known in the art, the Park transform calculations require knowledge of rotor position, i.e. rotor angle, in order to align the d axis to rotor flux. As such, in this conventional architecture of FIG. 1a, an estimate {circumflex over (θ)}[n] of the current rotor position for sample period n is produced by speed/position estimator 18 and applied to Park transform function 17a in the feedback loop. Inverse Park transform function 5 also requires some estimate of rotor position but, because it is involved in the generation of the phase drive signals for a next time interval (i.e., at sample time (n+1)·Ts), speed/position estimator 18 in this conventional architecture generates rotor position estimate {circumflex over (θ)}[n+1] for that next time interval n+1, and applies that estimate to inverse Park transform function 5. Conventionally, speed/position estimator 18 generates this forward-looking rotor position estimate {circumflex over (θ)}[n+1] multiplying the current rotor velocity estimate {circumflex over (ω)}[n] by the sample period (Ts), and adding that increment in rotor position to current rotor position estimate {circumflex over (θ)}[n] to predict the rotor position at sample time (n+1)·Ts.
Modern motor control architectures, such as that shown in FIG. 1a, commonly deliver the drive commands in the form of pulse-width-modulated signals for each of the drive phases. FIG. 1b illustrates an example of the alignment of pulse-width modulated drive signals PWMa through PWMc for three phases of motor M. As shown in FIG. 1b, the midpoints of each of signals PWMa through PWMc are aligned at the midpoint time Ts/2 within each of sample periods n (i.e., between times nTs and (n+1)Ts) and n+1 (between times (n+1)Ts and (n+2)Ts).
Conventional digital FOC architectures such as that shown in FIG. 1a operate in the discrete time domain, at a sampling frequency fs corresponding to period Ts (i.e., the sample period of ADCs 14). In these conventional architectures, the frequency at which speed/position estimator 18 operates is also at that same frequency fs, such that estimates of rotor position and velocity are generated for each time interval that input data are sampled in the feedback loop, and thus for each time interval for which pulse-width modulated signals are to be generated in the control loop. As such, in each period Ts the feedback loop of the controller of FIG. 1a determines the control signals of the current rotor velocity estimate {circumflex over (ω)}[n], forward-looking rotor position estimate {circumflex over (θ)}[n+1], and feedback currents Id, Iq, and the control loop determines the PWM signals to be generated by PWM driver 8.
It has been observed, however, that the computational time required for speed/position estimator 18 to generate estimates of rotor position and velocity is often the limiting factor in the frequency at which the motor can be controlled. For example, the minimum time required to compute rotor position and velocity estimates, even for modern high-performance microcontrollers, is typically on the order of 50 μsec, which limits the control frequency to no faster than about 20 kHz. Accordingly, one may be forced to sacrifice accuracy in speed tracking performance or utilize more complex (e.g., multiple processor) architectures in order to attain the higher bandwidth motor control desired for modern fast response motors.
By way of further background, copending U.S. application Ser. No. 14/675,196, filed Mar. 31, 2015, commonly assigned herewith and incorporated herein by this reference, describes a motor controller architecture that includes a function for selecting a fractional delay compensation value to be applied in the estimate of rotor position for which pulse-width-modulated drive signals are to be applied to a multi-phase electric motor, to compensate for the half-period delay necessitated by alignment of the multi-phase PWM signals with one another within the sample period as shown in FIG. 1b, and for other implementation-dependent delays from external controller components and other factors.